package thread;

public class ThreadDemo13 {
    //t线程把计算的结果放到result中
    private static long result = 0;
    public static void main(String[] args) throws InterruptedException {
        Thread t =new Thread(()->{
            for (long i = 1;i <= 50_0000_0000L;i++){
                result+=i;
            }
        });
        Thread t2 =new Thread(()->{
            for (long i = 50_0000_0001L;i <= 100_0000_0000L;i++){
                result+=i;
            }
        });
        t.start();
        t2.start();
        long begin = System.currentTimeMillis();
        //使用join,就会严格按照t线程执行结束来作为等待条件
        //什么时候t线程运行结束,什么时候join停止等待
        t.join();
        t2.join();
        long end = System.currentTimeMillis();
        //如果此时主线程直接打印result,主线程得到的结果是无法预期的(可能是没计算的,也可能是计算中的,还可能是计算完成的)

        System.out.println("result = "+result);
        System.out.println("耗时 : "+(end - begin)+"ms");

    }
}
